<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="author" content="Jxm">
    <title>星星评分</title>
        <style>
         body{
             /*文字大小12px 1.5倍行间距 arial一种字体*/
             font: 12px/1.5 arial;
             color: #666;
         }   
         ul,p{
             margin: 0;
             padding: 0;
         }
         #star{
             width: 600px;
             margin: 10px auto;
             position: relative;
         }
         #star span,
         #star ul{
             float: left;
             margin: 0 5px;
         }
         #star li{
             list-style: none;
             float: left;
             width: 24px;
             height: 24px;
             cursor: pointer;
             background-image: url(img/star.png);
             background-repeat: no-repeat;
             margin: auto 5px;
         }
         #star li.on{
             background-position: 0 -28px;
         }
         #star p{
             position: absolute;
             top: 20px;
             width: 160px;
         }
         #star p em{
             display: block;
             font-style: normal;
             color: #f60;
         }
         #star strong{
             color: #f60;
         }
    </style>
</head>

<body>
    <div id="star">
        <span>点击星星评分</span>
        <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <!--显示最终评分结果-->
            <span></span>
            <!--显示评分及评语-->
            <p></p>
        </ul>
    </div>
</body>

</html>

<script>

    window.onload = function () {
        var star = document.querySelector('#star');
        var aLi = star.getElementsByTagName('li');
        var span = star.getElementsByTagName('span')[1];
        var p = star.getElementsByTagName('p')[0];
        var ul = star.getElementsByTagName('ul')[0];
        var msg = [
            "很不满意|差得太离谱，与卖家描述的严重不符，非常不满",
            "不满意|部分有破损，与卖家描述的不符，不满意",
            "一般|质量一般，没有卖家描述的那么好",
            "满意|质量不错，与卖家描述的基本一致，还是挺满意的",
            "非常满意|质量非常好，与卖家描述的完全一致，非常满意"

        ];
        // split()按照指定的字符分隔字符串 返回一个数组
        // console.log(msg[0].split('|'));

        var isStar=0;

        for(var i=0;i<aLi.length;i++){
            // 记录每个li标签的索引值 
            aLi[i].index=i;
            // 当鼠标进来时 显示的星星
            aLi[i].onmouseover=function(){
                showStar(this.index+1);
                // 显示评语及评分
                p.innerHTML='<em><b>'+(this.index+1)+'</b>分'+msg[this.index].split('|')[0]+'</em>'+msg[this.index].split('|')[1];
                p.style.left=ul.offsetLeft+this.offsetWidth*this.index+'px';
            }

            // 点击标签 对评分进行处理
            aLi[i].onclick=function(){
                // 当点击第几个li标签时 isStar的值就是几
                isStar=this.index+1;
                // 清空p标签内容
                p.innerHTML='';
                // 显示右侧最终的评语
                span.innerHTML='<strong>'+isStar+'分</strong>('+msg[this.index].split('|')[1]+')';
            }

            aLi[i].onmouseout=function(){
                showStar(isStar);
                // 清空p标签内容
                p.innerHTML='';
            }
        }
        // 展示星星
        function showStar(index){
            for(var i=0;i<aLi.length;i++){
                // 根据所点到的li标签显示星星的数量 比如点到第2个星星就让前两个星星展示
                // if(i<index){
                //     aLi[i].className='on';
                // }else{
                //     aLi[i].className='';
                // }
                aLi[i].className=i<index? 'on':'';
            }
        }
    }

</script>